package com.sparkseries.service;

import com.sparkseries.common.util.domain.Result;
import com.sparkseries.domain.SysLog;
import com.sparkseries.domain.vo.SysLogVO;
import com.sparkseries.dto.SysLogDTO;

import java.util.Date;
import java.util.List;

public interface SysLogService {
    /**
     * 保存日志
     *
     * @param sysLog 要保存的日志传输类对象
     */
    void save(SysLog sysLog);

    /**
     * 日志归档
     *
     * @param date 指定的日期，删除该日期之前的日志
     */
    void deleteByDate(Date date);

    /**
     * 修改日志级别或类型
     *
     * @param logId    要修改的日志的 ID
     * @param logLevel 要修改的日志级别
     * @param logType  要修改的日志类型
     * @return 封装了修改操作结果的 Result 对象，若操作成功包含成功信息，若失败包含错误信息
     */
    Result<?> updateLog(Long logId, String logLevel, String logType);

    /**
     * 日志列表
     *
     * @param sysLogDTO 日志传输类
     * @param detail 模糊查找关键字
     * @return 日志响应类集合
     */
    Result<List<SysLogVO>> listLog(SysLogDTO sysLogDTO,String detail);

    /**
     * 导出日志
     *
     * @return 封装了导出操作结果的 Result 对象
     */
    Result<?> exportLogs();

    /**
     * 查找日志
     *
     * @param logId 日志id
     * @return 日志响应类
     */
    Result<SysLogVO> getLog(Long logId);

}